1. Field of the Invention
The present invention relates to distributed file systems. More specifically, the present invention relates to a method and an apparatus for implementing a distributed file system that is able to bypass a file server and instead use direct connections between clients and disks to perform file system operations.
2. Related Art
Distributed file systems are typically based on a client-server model, wherein a client wishing to access a file sends a request to a server to Upon receiving a request, the server accesses the underlying file system to perform the operation on the file. For example, if the request is to for a read operation, the server communicates with the underlying file system to locate the file and read the data from the file. During this process, the server translates a file identifier and an offset into identifiers for the physical disk blocks where the file is stored. The server then requests the disk blocks from one or more disk drives that contain the disk blocks. After the requested data is retrieved from the disk drives, the server forwards the data to the client that initiated the read request. A similar process takes place during a write operation, except that the data goes in the opposite direction.
This client-server model works well for systems that support a small number of clients that generate a small volume of requests. However, systems that support larger numbers of clients that generate a large volume of requests can potentially suffer from a bottleneck at the server. Such a bottleneck can dramatically increase the server's response time and can make accesses to the distributed file system unacceptably slow.
As computer networks provide additional connectivity, there often exists alternative pathways that connect a client with a disk drive containing a file without running through the server. However, these alterative pathways cannot be used by existing distributed file systems, because existing distributed file systems rely on the server to perform translations between file access requests and disk block identifiers. Hence, the server remains a bottleneck in such distributed file systems.
What is needed is a method and an apparatus that uses additional communication pathways between clients and disk drives to alleviate the performance bottleneck caused by routing all distributed file system operations through a server.